package com.xian.ai.code.model.vo;

import com.xian.ai.code.model.entity.User;
import lombok.AllArgsConstructor;
import lombok.Data;

import java.io.Serializable;
import java.time.LocalDateTime;

/**
 * 脱敏用户视图对象（用于普通用户查看用户信息，已脱敏）
 */
@Data
@AllArgsConstructor
public class UserSafeVO implements Serializable {

    /**
     * 用户 id
     */
    private Long id;

    /**
     * 账号
     */
    private String userAccount;

    /**
     * 用户昵称
     */
    private String userName;

    /**
     * 用户头像
     */
    private String userAvatar;

    /**
     * 用户简介
     */
    private String userProfile;

    /**
     * 用户角色：user/admin
     */
    private String userRole;

    /**
     * 创建时间
     */
    private LocalDateTime createTime;

    /**
     * 更新时间
     */
    private LocalDateTime updateTime;



    public static UserSafeVO fromEntity(User entity) {

        return new UserSafeVO(
                entity.getId(),
                entity.getUserAccount(),
                entity.getUserName(),
                entity.getUserAvatar(),
                entity.getUserProfile(),
                entity.getUserRole(),
                entity.getCreateTime()
                ,entity.getUpdateTime()
        );
    }

    private static final long serialVersionUID = 1L;
}